import { request } from '../../request/index.js'
import regeneratorRuntime from '../../lib/runtime/runtime'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 左侧的菜单数据
    leftMenuList: [],
    // 右侧的商品数据
    rightContent: [],
    // 左侧菜单被选中后的颜色
    currentIndex: 0,
    // 右侧商品切换的时候，页面重新回到顶部
    scrollTop: 0
  },
  // 获取 分类数据 接口返回的数据
  Cates: [],
  onLoad: function (options) {
    // 1 获取本地存储中的数据
    const Cates = wx.getStorageSync('cates');
    // 2 判断
    if (!Cates) {
      // 不存在发送请求
      this.getCates()
    } else {
      // 定义旧数据过期时间,10s
      if (Date.now() - Cates.time > 300000) {
        // 重新发送请求
        this.getCates()
      } else {
        // 旧数据未过期，则使用旧数据
        this.Cates = Cates.data
        // 构造左侧菜单数据
        let leftMenuList = this.Cates.map(item => item.cat_name)
        // 构造右侧商品数据 
        let rightContent = this.Cates[0].children
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }

  },
  // 获取分类数据
  async getCates() {
    // request({
    //   url: '/categories'
    // })
    //   .then(({ data }) => {
    //     this.Cates = data.message
    //     // 把接口数据存入到本地存储中
    //     wx.setStorageSync('cates', { 'time': Date.now(), 'data': this.Cates });
    //     // 构造左侧菜单数据
    //     let leftMenuList = this.Cates.map(item => item.cat_name)
    //     // 构造右侧商品数据
    //     // let rightContent = this.Cates.map(item => item.children)
    //     let rightContent = this.Cates[0].children
    //     this.setData({
    //       leftMenuList,
    //       rightContent
    //     })
    //   })
    const res = await request({ url: "/categories" })
    this.Cates = res.data.message
    // 把接口数据存入本地存储中
    wx.setStorageSync("cates", { 'time': Date.now(), 'data': this.Cates })
    // 构造左侧菜单数据
    let leftMenuList = this.Cates.map(item => item.cat_name)
    // 构造右侧商品数据
    let rightContent = this.Cates[0].children
    this.setData({
      leftMenuList,
      rightContent
    })
  },
  // 左侧菜单选中项改变颜色,并改变右侧显示的商品、商品页面从顶部显示
  handleItemTap(e) {
    let rightContent = this.Cates[e.currentTarget.dataset.index].children
    this.setData({
      currentIndex: e.currentTarget.dataset.index,
      rightContent,
      scrollTop: 0
    })
  }
})